package com.by.cart.service;


import com.by.cart.entity.Cart;

import java.util.List;

public interface CartService {
    /**
     * 添加商品到购物车
     */
    void addCart(Long userIO,Cart cart);

    /**
     * 更新购物车中的商品规格
     */
    void updateCart(Long userId, Long skuId ,Long newSkuId);

    /**
     * 从购物车中移除商品
     */
    void removeCart(Long userId, Long skuId);

    /**
     * 清空购物车
     */
    void clearCart(Long userId);

    /**
     * 获取用户购物车中的所有商品
     */
    List<Cart> getCarts(Long userId);

    /**
     * 将用户购物车数据持久化到数据库
     */
    void persistToDatabase(Long userId);


    // 更新商品选中状态
    void updateCartSelection(Long userId, Long skuId, boolean selected);

    // 全选/取消全选
    void selectAll(Long userId, boolean selected);

    // 获取购物车中商品数量
    int getCartnum(Long userId);

    // 获取购物车中选中的商品
    List<Cart> getSelectedCarts(Long userId);

    // 删除选中的商品
    void removeSelectedCarts( Long userId,List<Long> skuIds);
}